The present invention relates to a method, a system and apparatuses for transferring data on a bitstream in a circuit switched time division multiplexed network, wherein said bitstream is divided into frames, each frame is divided into time slots, and said time slots are divided into control slots and data slots, and wherein an isochronous channel, comprising one or more data slots within each cycle of said bitstream, has been established between a first node and a second node of said network.
Today, new types of circuit-switched communication networks are being developed for the transfer of information using isochronous channels carried on time division multiplexed bitstreams, wherein a bitstream is divided into frames, each frame in turn being divided into time slots.
One example of such a network is the so-called DTM network (DTMxe2x80x94Dynamic Synchronous Transfer Mode). DTM is a broadband network architecture (see e.g. Christer Bohm, Per Lindgren, Lars Ramfelt, and Peter Sjxc3x6din, The DTM Gigabit Network, Journal of High Speed Networks, 3(2), 109-126, 1994, and Lars Gauffin, Lars H{dot over (a)}kansson, and Bjxc3x6rn Pehrson, Multi-gigabit networking based on DTM, Computer Networks and ISDN System, 24(2), 119-139, April 1992).
The basic topology of a network of this kind is preferably a bus with two unidirectional optical fibers connecting a number of nodes, each node being arranged to serve one or more end users connected thereto. Note, however, that the topology may just as well be realized by any other kind of structure, e.g. a ring structure or a hub structure.
The bandwidth of each wavelength on the bus, i.e. each bitstream on each fiber, is divided into fixed size, typically 125 xcexcs, frames which in turn are divided into fixed size, typically 64-bit, time slots. The number of slots in a frame thus depends on the network""s bit-rate. The slots are divided into two groups, control slots and data slots. Control slots are used for transferring of signaling messages between said nodes for the network""s internal operation. The data slots are used for the transfer of user data, also referred to as payload data. The user data is typically transferred between end user having access to said network, either directly or via a node unit providing said end user with access to said network.
Each node is hence arranged to dynamically establish isochronous communication channels, each channel comprising a set of data slots within each frame on a bitstream, for the transfer of data through the network.
When, for example, a first user connected to a first node wants to transfer information to a second user connected to a second node, said first node will allocate a number of data slots within each frame, thus defining an isochronous channel, for the first user to write data into. The first node will also send a control message in a control slot to the second node, instructing said second node to read any data being provided in said allocated data slots within said frame and to send such data so said second user.
The object of the invention is to provide a faster and more reliable way of handling communication in networks of the above-mentioned type.
This and other objects are accomplished by the invention as defined in the accompanying claims.
Hence, according to a first aspect of the invention, there is provided a method of the kind mentioned in the introduction, said method being characterized by the step of providing said bitstream with data distinguishing each data slot, within said channel, that contains non-valid data as a result of said first node not being able to transmit valid data into said each data slot, which step in turn comprises the steps of:
providing said each data slot with data designating the respective data slot as containing non-valid data;
encoding said designating data of each respective data slot as a specific bit pattern; and
transmitting said specific bit pattern on said bitstream, said specific bit pattern, when received, being recognizable as identifying a data slot which contains non-valid data.
According to a second aspect of the invention, there is provided a system for transferring data on a bitstream in a circuit switched time division multiplexed network, wherein said bitstream is divided into frames, each frame is divided into time slots, and said time slots are divided into control slots and data slots, comprising a first node for transmitting data into time slots of said bitstream; a second node for reading data from time slots of said bitstreams; means for establishing an isochronous channel, comprising one or more data slots within each cycle on said bitstream, between said first node and said second node; and means for providing said bitstream with data distinguishing each data slot, within said channel, that contains non-valid data as a result of said first node not being able to transmit valid data into said each data slot.
According to a third and a fourth aspect of the invention, there is provided sending and receiving node apparatuses, which will be further disclosed below.
The invention serves to avoid the situation wherein non-valid data, or xe2x80x9cgarbagexe2x80x9d data, is transferred in the data slots of an allocated isochronous channel on a bitstream between two nodes as a result of the sending node not having received valid data for transmission into said channel, thus possibly resulting in the receiving node reading data from said data slots and passing it along, for example to a receiving end user, irrespective of whether or not said data slots provide valid or non-valid data, consequently making it necessary for the receiving user to distinguish valid data from non-valid data.
According to the invention, the occurrence of this type of undesired situation is prevented by the detection of the failure at the sending node to transmit data for any one of the allocated data slots and by the sending of information to the receiving node as to which data slots within said channel that contain non-valid data (or which data slots that contain valid data). Consequently, it is possible for the receiving node to handle received data accordingly, for example by only passing on valid data to a receiving end user connected to the receiving node.
In this context, it is important to note that, in a conventional network of the kind mentioned in the introduction, the nodes are not concerned with the actual information being transferred on the data slots defining said channel. The sending node merely receives data, for example from a sending end user being served by the sending node, or from another bitstream accessed by the sending node (i.e. in case of the sending node acting as a switch node), and writes said data into data slots of the channel on the bitstream between the sending and the receiving node. Correspondingly, the receiving node merely reads data from said allocated data slots and passes said read data to, for example, a receiving end user connected to the second node, or forwards said data to another bitstream accessed by the sending node (i.e. in case of the receiving node acting as switch node). In other words, with the exemption of the initial channel establishment signaling between the nodes and the mere passing of data to and from data slots allocated to the channel, the first and second nodes are basically not concerned with any control signaling or the like taking place between the communicating end users within the realms of the data slots allocated to said channel, It may hence be said that the nodes are not concerned with the content of data transferred between end users using said allocated time slots. Furthermore, data transferred in said allocated data slots from one end user to another end user may comprise control signaling or control information as well as mere data. However, the node of the network are essentially not concerned with the communication protocol at end user level. Consequently, the communication protocol at the end user level need not be synchronous, but may just as well be a synchronous or the like. Hence, any kind of information transferred in said allocated data slots is regarded as user data as far as the sending and receiving nodes are concerned.
According to the invention, the nodes are still not concerned with the actual content of any data sent in the data slots of the allocated channel. However, the sending node will make sure to distinguish any data slot of the channel that will not contain valid data, for example that will not be provided with data due to the failure on behalf of a sending end user connected to the sending node to provide data to the sending node for transmission into said channel.
The transmission of non-valid data distinguishing information according to the invention takes place outside of the protocol used between end users at the end user level. Hence, the scheme suggested according to the invention may be said to define a protocol at node level and is hence transparent as far as the end users are concerned.
Further, according to the invention, the step of distinguishing one or more specific data slots within the channel as containing non-valid data does not affect the allocation of the channel. Said slots remain allocated to the channel and are hence used by the sending user again during the next frame of the bitstream.
Also, note that the term xe2x80x9cdata distinguishing each data slot, within said channel, that contains non-valid dataxe2x80x9d (also referred to as xe2x80x9cvalidity dataxe2x80x9d) according to the invention may identify either data slots containing valid-data or data slots containing non-valid data, or both, as long as the receiving node is able to separate data slots transferring valid data from data slots transferring non-valid data. Hence, the whether or not said distinguishing data actually designates data slots containing valid data or data slots containing non-valid data will depend upon the chosen implementation.
There may be many different reasons as to why the sending node will lack valid data to transmit into a data slot of the allocated channel. For example, the communication protocol used end to end between a sending end user and the receiving end user may simply state that there should not be any transfer of data in time intervals corresponding to the missing data. The end users may for example communicate using a packet-based protocol with some slots corresponding to gaps between packets. Another reason may be that a sending end user fails to provide the sending node with valid data because of temporary processing or communication capacity shortage, either within the sending end user itself or in relation to the communication between the sending end user and the sending node, for example at a packet switched node situated between the end user and the sending node.
As understood, a sending and receiving node, or a xe2x80x9cfirstxe2x80x9d and xe2x80x9csecondxe2x80x9d node, according to the invention, need not necessarily be the terminating points of the communication path between the sending end user and the receiving end user, but may merely define a portion of said communication path. This will especially be the case when a multi-hop channel has been established via said first and second nodes.
Furthermore, if said first node is a switch node, merely switching said channel from data slots defining the channel on a first bitstream to data slots defining the channel on a second bitstream, said data distinguishing a data slot as transferring non-valid data may in fact be received from said first bitstream and may then simply be mapped by the first node from the first bitstream to the second bitstream. Correspondingly, if said second node is a switch node, merely switching said channel from data slots defining the channel on a first bitstream to data slots defining the channel on a second bitstream, said data distinguishing a data slot as transferring non-valid data need not be evaluated and/or used to discard data at the second node, but may instead simply be mapped by the second node from the first bitstream to the second bitstream, thereby similarly informing a receiving node attached downstream on the second bitstream as to the validity of data provided in the data slots defining the channel on the second bitstream.
According to a preferred embodiment of the invention, the node serving a sending end user is provided with means for detecting that the sending end user has failed to provide valid data for any one of the time slots of the allocated channel. Said node may then use one of several schemes for providing information to the node(s) serving the receiving user(s) that certain specific time slots of the channel contain non-valid data. According to the invention, the sending node simply writes data designating the respective data slot as containing non-valid data into each slot within the channel that does not contain valid data and then encodes that data as a specific bit-pattern. For example, a bit-pattern marking said slot as xe2x80x9cidlexe2x80x9d may be used. Correspondingly, a node serving a receiving end user may distinguish said data slots containing non-valid data by detecting said bit-pattern marking the respective slot as xe2x80x9cidlexe2x80x9d, or the like. Any data provided in such non-valid data marked data slots may then simply be discarded at the receiving node, and will hence not be passed on to the receiving end user.
According to another embodiment of the invention, a data slot, which contains N bits of data, and which has been provided with data designating the data slot as containing non-valid data, is encoded into M bits of data. Thereby, spear bites are generated, which can be used for completing the specific bit-pattern, which alerts a receiving node that the data slot contains non-valid data. Preferably, N=64 and M=80 as will be further discussed below.
According to an embodiment of the invention, a third node, arranged upstream in relation to the first node, will provide said bitstream with data designating all data slots within said channel as containing non-valid data. Said first (sending) node is then arranged to invalidate said data designating all data slots within said channel as containing non-valid data. Thus, if the sending node lacks data to transmit into a data slot of the channel, the sending node merely leaves the designating data already provided by said third node unchanged for that specific time slot.
As a result of the marking of nonsense slots as containing non-valid data according to the invention, it is possible to let a valid-data slot and a non-valid data slot change slot positions with each other within a given channel as long as the sequential order of the valid data slots are not altered. Hence, it is possible for the sending node to send valid data slots together in a contiguous slot range and to send non-valid data slots together in another contiguous slot rango within said given channel, which further improve the communication capabilities.
An important part of the invention according to one embodiment thereof is the detection aat the sending node that data has not been delivered for a specific data slot since the last frame. This is the signal that, for example, an idle slot, or the like, should be sent instead. Since a channel consists of a set of data slots in the frame (a time slot is identified by the slot number in the cycle) that are allocated to the channel at channel set-up, after channel set-up, data is sent cyclically in each data slot that is allocated to the channel. This means that, for a specific data slot, data has to be delivered cyclically, i.e., data has to be delivered to the sending node within one frame time.
One way to keep record of this is to use a xe2x80x9cwritten-slotxe2x80x9d record. This record has typically one entry for each time slot in the frame. The written-slot record is essentially a set of flags (one for each time slot is in the frame) telling whether new data has been delivered for that time slot since it was last sent onto the link. The corresponding entry for a time slot is typically set when data has been delivered (from and end user interface or from another port in a switch) since the last time that specific slot was sent onto the medium. Correspondingly, the entry is cleared when data is written onto the medium, i.e., when the slot with the slot number in the cycle that corresponds to the entry of the written-slot record passes.
When data is to be written onto the medium, the node checks it""s written-slot record, and if said entry is set writes into the corresponding data slot from the corresponding buffer. However, if the entry is cleared, no data has been delivered since last frame and thus an idle slot or the like is generated.
Another implementation can be used if per-channel queues are used, i.e., a queue where data is placed in the order it is to be sent. If there is no data in the queue when data is to be sent onto a specific time slot, and idle slot or the like is sent instead. When a FIFO is used, the data delivered to the node needs to be tagged with a channel identifier or a slot number, if several channels are supported by the node. If only a single channel is supported, it is enough to check whether the FIFO is empty or not when data is to be sent. If it is empty, and idle slot is sent instead. If several channels are supported, the node must be able to decide whether the first data item in the FIFO should be sent onto the passing slot. This could be implemented by tagging the data in the data in the FIFO with a channel identifier or with the slot number it should be sent onto. If slot numbers are used and no reordering is assumed, the tagged slot number is compared with a slot counter of the node. If equal, the data slot is sent, otherwise an idle slot is sent. If a channel identifier is tagged to the data in the FIFO, a channel table is needed that knows for each outgoing slot what channel the data slot stems from. If that channel corresponds to the tagged channel identifier in the FIFO, the data slot is sent otherwise an idle slot is sent.
It is understood that the sending of information from said first user/node to said second user/node according to the invention may be either pointxe2x80x94toxe2x80x94point, multi-cast or broad-cast.
Also, it is understood that a channel according to the invention is said to be isochronous in that it is defined by a set of slots, said set of slots occurring cyclically at fixed intervals on said bitstream.
Further, aspects, objects and features of the invention will be understood more fully from the accompanying claims and from the following description of exemplifying embodiments thereof with reference to the accompanying drawing.